2015年5月23日

R 是資料分析最常用的工具之一

R 有許多資料相關功能跟套件

我們聯結R 和DataTaipei

10行內就可搜資料、整理、做應用雛形

# 抓資料
library(DataTaipei)
rs <- dataSetMetadataSearch(q = "公廁")
data <- resourceAquire(getResources(rs, 1)$resourceId)
# 畫圖
library(ggmap)
qmap("台北火車站", zoom = 16,legend = "topleft") +
  geom_point(aes(x = lng, y = lat), colour = "blue", data = data)

臺北市公廁分佈

再來一個例子

# 抓資料
library(DataTaipei)
rs <- dataSetMetadataSearch(q = "youbike")
data <- resourceAquire(getResources(rs, 1)$resourceId)
# 整理資料
library(dplyr)
data <- dplyr::mutate(data, lat = as.numeric(lat), lng = as.numeric(lng))
# 畫圖
library(ggmap)
qmap("台北火車站", zoom = 15,legend = "topleft") +
  geom_point(aes(x = lng, y = lat, size = bemp), colour = "blue", data = data)

臺北市Youbike站點

時間序列

library(DataTaipei)
rs <- dataSetMetadataSearch("氣象")
data <- resourceAquire(getResources(rs, 2)$resourceId[1])
library(dplyr)
data <- dplyr::filter(data, locationName == "臺北市") %>%
  dplyr::mutate(startTime = as.POSIXct(strptime(startTime, "%Y-%m-%dT%H:%M:%S+08:00")), 氣溫=parameterName2) %>%
  dplyr::select(startTime, 氣溫)
library(dygraphs)
library(xts)
xts(data[,-1,with=FALSE], order.by = data$startTime) %>%
  dygraph

氣溫資料

資料統計

# 抓資料
library(DataTaipei)
rs <- dataSetMetadataSearch(q = "不動產")
data <- resourceAquire(getResources(rs, 4)$resourceId)
# 整理資料
library(dplyr)
data <- dplyr::mutate(data, `SDATE`=as.Date(as.character(SDATE + 19110000),"%Y%m%d"))
colnames(data)[-1] <- strsplit(rs$fieldDescription[4], "、", useBytes = TRUE)[[1]]
# 行政區分佈
library(googleVis)
group_by(data, `都市土地使用分區(LANDA_Z)`) %>%
  summarise(count = length(`_id`)) %>%
  gvisBarChart(yvar = "count") %>% 
  plot

台北市不動產交易資料

BarChartID488c733c8455

Data: data • Chart ID: BarChartID488c733c8455googleVis-0.5.6
R version 3.1.2 (2014-10-31) • Google Terms of UseDocumentation and Data Policy

分析

m <- dplyr::filter(data, `成交案件類型(CASE_T)` == "買賣") %>%
  lm(formula = `交易單價(萬元/坪)/租賃單價(元/坪)(UPRICE)` ~
     `單價是否含車位(UPNOTE)` +
     `主要建材(MBUILD)` +
     `行政區(DISTRICT)` +
     `都市土地使用分區(LANDA_Z)`)

影響價格的因素

Estimate Std. Error t value Pr(>|t|)
(Intercept) 66.2052 25.2208 2.63 0.0089
單價是否含車位(UPNOTE) 47.5464 7.9084 6.01 0.0000
單價是否含車位(UPNOTE) 45.5912 9.1880 4.96 0.0000
主要建材(MBUILD)鋼骨鋼筋混凝土造 -41.0961 18.3788 -2.24 0.0257
主要建材(MBUILD)鋼骨混凝土造 -114.4033 50.7893 -2.25 0.0247
主要建材(MBUILD)鋼筋混凝土加強磚造 -69.1000 50.4284 -1.37 0.1711
主要建材(MBUILD)鋼筋混凝土造 -65.9004 10.0134 -6.58 0.0000
主要建材(MBUILD)加強磚造 -48.4023 13.6192 -3.55 0.0004
主要建材(MBUILD)見其他登記事項 -19.4890 16.5027 -1.18 0.2381
主要建材(MBUILD)見使用執照 -91.3995 25.5737 -3.57 0.0004
主要建材(MBUILD)土造 -60.0245 50.1604 -1.20 0.2319
主要建材(MBUILD)磚造 -63.9492 49.8077 -1.28 0.1997
行政區(DISTRICT)大安區 45.8130 8.9017 5.15 0.0000
行政區(DISTRICT)大同區 19.5978 13.5828 1.44 0.1496
行政區(DISTRICT)南港區 9.1436 12.0107 0.76 0.4468
行政區(DISTRICT)內湖區 13.9284 8.3018 1.68 0.0939
行政區(DISTRICT)士林區 1.6648 8.9580 0.19 0.8526
行政區(DISTRICT)松山區 26.6448 11.3523 2.35 0.0193
行政區(DISTRICT)萬華區 22.3602 12.2683 1.82 0.0689
行政區(DISTRICT)文山區 3.2783 9.5103 0.34 0.7304
行政區(DISTRICT)信義區 35.5949 9.1223 3.90 0.0001
行政區(DISTRICT)中山區 21.2693 8.8498 2.40 0.0166
行政區(DISTRICT)中正區 45.1166 17.2021 2.62 0.0090
都市土地使用分區(LANDA_Z) -7.9645 26.8597 -0.30 0.7669
都市土地使用分區(LANDA_Z) -39.9002 42.7874 -0.93 0.3515
都市土地使用分區(LANDA_Z)其他 -22.4221 24.4643 -0.92 0.3598
都市土地使用分區(LANDA_Z) -0.9930 23.8995 -0.04 0.9669
都市土地使用分區(LANDA_Z) -2.9709 23.5374 -0.13 0.8996

但是有時候仍然有500

library(DataTaipei)
rs <- dataSetMetadataSearch(q = "不動產")
tryCatch({
  data <- resourceAquire(getResources(rs, 1)$resourceId)
}, error= function(e) print(e))
## <http_500 in dataTaipeiCheck(response): server error: (500) Internal Server Error>

群眾壞資料篩選

我們正在考慮當下載錯誤時

讓使用者自動輸入抱怨資訊

然後發送e-mail給台北市資訊局

我們的專案首頁